#include "snake.h"
#include<qrect.h>
#include<qtimer.h>
#include<QKeyEvent>
#include<QDebug>
#include<QFont>
#include<QPixmap>
#include<qstackedwidget.h>
Snake::Snake(QWidget* parent) :
    QMainWindow(parent),
     blsRun(false), speed(500)
    
{
   
    this->setGeometry(QRect(600, 300, 290, 310));
}
Snake::~Snake()
{
    delete ui;
}

void Snake::paintEvent(QPaintEvent* event) {//update()或程序第一次启动时自动执行，用于画图
    QPainter painter(this);
    if (!blsRun) {//只有blsRun为false时才需要初始化蛇
        InitSnake();//初始化蛇，此时蛇还没有画，只是初始化了矩形，没有显示
    }
    //画游戏背景
    //外墙
    painter.setPen(Qt::black);//设置画笔颜色
    painter.setBrush(Qt::gray);//设置填充颜色
    painter.drawRect(15, 15, 260, 260); //画矩形，相对于窗体的起点坐标（15，15），大小260*260
    //内墙
    painter.setPen(Qt::black);//设置画笔颜色
    painter.setBrush(Qt::white);//设置填充颜色
   painter.drawRect(20, 20, 250, 250); //画矩形，相对于窗体的起点坐标（20，20），大小250*250
 
    //画小格子，大小10*10
    painter.setPen(Qt::blue);//设置画笔颜色
   for (int i = 2; i <= 27; i++) {
       painter.drawLine(20, i * 10, 270, i * 10);//画横线，270是根据坐标换算出来的
     painter.drawLine(i * 10, 20, i * 10, 270);//画竖线
   }
    //显示游戏开始、结束
    QFont font1("Courier", 24);
    painter.setFont(font1);
    painter.setPen(Qt::red);
    painter.setBrush(Qt::red);
    painter.drawText(40, 150, sDisplay);
    //得分显示
    QFont font2("Courier", 15);
    painter.setFont(font2);
    painter.setPen(Qt::blue);
    painter.setBrush(Qt::blue);
    painter.drawText(140, 300, scoreLabel);
    painter.drawText(230, 300, QString::number(nScore));
    //画蛇
    painter.setPen(Qt::black);//设置画笔颜色
    painter.setBrush(Qt::black);//设置填充颜色
   painter.drawRect(food);
   
    painter.drawRects(&vSnakeRect[0], vSnakeRect.size());//画n个小方块
    if (blsOver)//游戏结束，停止计时
        timer->stop();
}
void Snake::InitSnake() {
    nDirection = 2;//默认向下运动
    blsRun = true;
    blsOver = false;
    sDisplay = "game start";
    scoreLabel = "score:";
    nScore = 0;
    food = CreateRect();//创建食物
   // QRect rect(100,70,10,10);//